home *** CD-ROM | disk | FTP | other *** search
/ Java Programmer's Toolkit / Java Programmer's Toolkit.iso / applets / collectn / bag.jav < prev    next >
Text File  |  1995-10-14  |  2KB  |  64 lines

  1. /*
  2.   File: Bag.java
  3.  
  4.   Originally written by Doug Lea and released into the public domain. 
  5.   Thanks for the assistance and support of Sun Microsystems Labs, Agorics 
  6.   Inc, Loral, and everyone contributing, testing, and using this code.
  7.  
  8.   History:
  9.   Date     Who                What
  10.   24Sep95  dl@cs.oswego.edu   Create from collections.java  working file
  11.  
  12. */
  13.   
  14. package collections;
  15.  
  16. import java.util.Enumeration;
  17. import java.util.NoSuchElementException;
  18.  
  19. /**
  20.  *
  21.  * Bags are collections supporting multiple occurrences of elements.
  22.  * @author Doug Lea
  23.  * @version 0.93
  24.  *
  25.  * <P> For an introduction to this package see <A HREF="index.html"> Overview </A>.
  26.  *
  27. **/
  28.  
  29. public interface Bag extends Collection { 
  30.  
  31. /**
  32.  * Construct a new Bag that is a clone of self except
  33.  * that it includes indicated element. This can be used
  34.  * to create a series of Bag, each differing from the
  35.  * other only in that they contain additional elements.
  36.  *
  37.  * @param the element to add to the new Bag
  38.  * @return the new Bag c, with the sameStructure as this except that
  39.  * c.occurrencesOf(element) == occurrencesOf(element)+1 
  40.  * @exception IllegalElementException if !canInclude(element)
  41. **/
  42.  
  43.   public Bag   adding(Object element) 
  44.                        throws IllegalElementException;
  45.  
  46. /**
  47.  * Construct a new Collection that is a clone of self except
  48.  * that it adds the indicated element if not already present. This can be used
  49.  * to create a series of collections, each differing from the
  50.  * other only in that they contain additional elements.
  51.  *
  52.  * @param element the element to include in the new collection
  53.  * @return a new collection c, with the sameStructure as this, except that
  54.  * c.occurrencesOf(element) = min(1, occurrencesOfElement)
  55.  * @exception IllegalElementException if !canInclude(element)
  56. **/
  57.  
  58.   public Bag  addingIfAbsent(Object element) 
  59.                        throws IllegalElementException;
  60.  
  61. };
  62.  
  63.  
  64.